A speech recognition system receives an audio stream and filters the audio stream to extract and isolate sound segments that make up speech. Speech recognition technologies allow computers and other electronic devices equipped with a source of sound input, such as a microphone, to interpret human speech, e.g., for transcription or as an alternative method of interacting with a computer. Speech recognition software has been developed for use in consumer electronic devices such as mobile telephones, game platforms, personal computers and personal digital assistants.
In a typical speech recognition algorithm, a time domain signal representing human speech is broken into a number of time windows, sometimes referred to as frames, and the time domain signal for each frame is converted to a frequency domain signal, e.g., by fast Fourier transform (FFT). This frequency or spectral domain signal is then compressed by taking a logarithm of the spectral domain signal and then performing another FFT. From the compressed signal, a statistical model can be used to determine phonemes and context within the speech represented by the signal. The extracted phonemes and context may be compared to stored entries in a database to determine the word or words that have been spoken.
A speech recognition system may utilize a grammar and dictionary (GnD) organized as a connected graph structure to analyze one or more frames. The graph structure generally includes a plurality of interconnected nodes that correspond to phonemes and terminal points that correspond to words in the GnD. Signals from one or more frames are analyzed by traversing a path through a subset of the nodes to a word.
Speech recognition systems often use a Hidden Markov Model (HMM) at each node within such a graph structure to determine the units of speech in a given speech signal. The speech units may be words, two-word combinations or sub-word units, such as phonemes and the like. Each HMM is a grouping of HMM states that represent a phoneme under a context. By way of example, the context may indicate a preceding or subsequent phoneme extracted from the time domain signal. Each HMM state is a mixture of probability distributions (e.g., Gaussians). Each node is further characterized by an HMM structure that includes a link and a transition probability for each of the HMM states. The combination of HMMs, states, Gaussians and HMM structure for each node in the GnD is sometimes referred to herein as an acoustic model.
The HMM may be characterized by:
L, which represents a number of possible states of the system;
M, which represents the total number of Gaussians that exist in the system;
N, which represents the number of distinct observable features at a given time; these features may be spectral (i.e., frequency domain) or temporal (time domain) features of the speech signal;
A={aij}, a state transition probability distribution, where each aij represents the probability that the system will transition to the jth state at time t+1 if the system is initially in the ith state at time t;
B={bj(k)}, an observation feature probability distribution for the jth state, where each bj(k) represents the probability distribution for observed values of the kth feature when the system is in the jth state; and
π={πi}, an initial state distribution, where each component πi represents the probability that the system will be in the ith state at some initial time.
Hidden Markov Models can solve three basic problems of interest in real world applications, such as speech recognition: (1) Given a sequence of observations of a system, how can one efficiently compute the probability of the observation sequence; (2) given the observation sequence, what corresponding state sequence best explains the observation sequence; and (3) how can one adjust the set of model parameters A, B π to maximize the probability of a given observation sequence.
The application of HMMs to speech recognition is described in detail, e.g., by Lawrence Rabiner in “A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition” in Proceedings of the IEEE, Vol. 77, No. 2, February 1989, which is incorporated herein by reference in its entirety for all purposes. Human speech can be characterized by a number of recognizable patterns known as phonemes. Each of these phonemes can be broken down in a number of parts, e.g., a beginning, middle and ending part. It is noted that the middle part is typically the most stable since the beginning part is often affected by the preceding phoneme and the ending part is affected by the following phoneme. The different parts of the phonemes are characterized by frequency domain features that can be recognized by appropriate statistical analysis of the signal. The statistical model often uses Gaussian probability distribution functions to predict the probability for each different state of the features that make up portions of the signal that correspond to different parts of different phonemes. One HMM state can contain one or more Gaussians. A particular Gaussian for a given possible state, e.g., the kth Gaussian can be represented by a set of N mean values μki and variances σki. In a typical speech recognition algorithm one determines which of the Gaussians for a given time window is the largest one. From the largest Gaussian one can infer the most probable phoneme for the frame.
Each node in the graph structure corresponds to a phoneme. The HMM, Gaussians, state and HMM structure are used the compute the probability that a measured feature set for a frame corresponds to the phoneme for the node for a given frame. Given the probabilities for each node at each frame probabilities are then computed for possible paths through linked nodes in the GnD that lead to words or phrases. The path having the highest probability is determined selected in order to complete the recognition.
Voice recognition accesses large amount of data in random fashion. The voice recognition graph memory structure is not easily partitioned into un-related memory blocks so that computation can be done in parallel in co-processors having a relatively small local memory (e.g., 256 kilobytes).  Prior art voice recognition systems used either a single big chunk of main memory in a PC environment or ran on embedded devices with a smaller size HMM and smaller vocabulary.
It is within this context that embodiments of the current invention arise.